
isContitue=True

def check_is_number(num):
    """"
    这个函数用来检测是否输出为整数,如果是整数返回真，否则返回假
    """
    try:
        int(num)
    except:
        return False
    return True

def calculate(num1,operator,num2):
    """
    做数值计算，返回运算结果
    """
    if operator=="+":
        return num1+num2
    elif operator=="-":
        return num1-num2
    elif operator=="*":
        return num1*num2
    elif operator=="/":
        return num1/num2


while isContitue:
    # 要求输入第一个数字，输入后需要检查是否输入为数字，使用循环确保只能输入数字
    first_input=input("请输入第一个数字")
    while ( not check_is_number(first_input)):
        first_input=input("输入不是数字，请重新输入")

    # 要求输入运算符，使用循环确保只能输入正确的内容
    input_operator=input("提示输入操作符（+ - * /）")
    while ( not (True if input_operator in ["+","-","*","/"] else False)):
        input_operator=input("输入不是正确的操作符，请重新输入")

    second_input=input("请输入第二个数字")
    second_input_valid=False
    # 要求输入第二个数字，并且除号时不能为0，并且预防输入为00的意外情况
    while not second_input_valid:
        if not check_is_number(second_input):
            second_input = input("输入不是数字，请重新输入")

        else:
            if  int(second_input)==0 and input_operator=="/":
                second_input=input("分母不能为0，请重新输入")
            else:
                second_input_valid=True

    # 打印输出结果
    print("{}{}{}的结果是{}".format(first_input,input_operator,second_input,calculate(int(first_input),input_operator,int(second_input))))

    # 确认是否需要继续
    isContitue = False if input("如果退出请按q按其他键重新计算") =="q" else True





